/*
 * BxGlobal.h
 *
 *  Created on: 2019年2月16日
 *      Author: bx-fantx
 */

#ifndef GLOBAL_GLOBAL_H_
#define GLOBAL_GLOBAL_H_


#include <string>
#include "ObasicTypes.h"
#define _(String) gettext(String)


//! 全局宏
#define     BX_printf(fmt, ...)               if(1){printf(fmt, ##__VA_ARGS__);}else{}


//! 全局类
extern class Global *g_Global;
extern class onbonsource* g_OnbonSource;
extern class fpga_manage* g_FpgaManage;
extern class message_deal* g_MessageDeal;
extern Oint32  g_AppExit;

class Global {
public:
    virtual ~Global();
    std::string g_controller_name;					    						//! 控制器类型名

    static Global* pInstance();
    void init_global_variable();                                                //! 初始化全局变量

    Ouint32 OVP_CONTROL_FPGA1;
    Ouint8 OVP_CONTROL_OUT_EACH_CARD_NET_NUM;
    Ouint8 OVP_CONTROL_OUT_NUM;

    //about flash addr
    Ouint32 FLASH_SEC_SIZE; //用于扇区的读写
    Ouint32 PARAM1_SEC;//441//442//(127)  //参数区1
    Ouint32 PARAM1_SEC_ADDR;

    Ouint32 RAM1_SEC;        //LCD para
    Ouint32 RAM1_ADD;

    Ouint32 TIME_FLAG;    //工程运行标志区
    Ouint32 TIME_FLAG_ADD;

    Ouint32 ONOFF_SEC;//893//396     //定时开关参数区
    Ouint32 ONOFF_ADD;
    Ouint32 BRIGHT_SEC;//894//397     //调亮参数区
    Ouint32 BRIGHT_ADD;

    Ouint32 RAM_PARA_START_SEC;//886//384			//!<RAM参数
    Ouint32 RAM_PARA_END_SEC;//886//384			//!<RAM参数

    Ouint32 PC_NET_PARA_SEC;//922//(482) //PC备用扇区 用于PC记录网口参数
    
    Ouint32 RAM_PARA_BASE_ADD;//!<MCU 中 RAM 参数的保存位置。

    Ouint32 PC_NET_PARA_ADDR;

    //c331 fpga flash
    Ouint32 C331_FLASH_SEC_MAX;//2048,//8M
    Ouint32 C331_FLASH_MAX_ADDR;

    //FPGA1 FLASH 8M
    Ouint32 FPGA_FLASH_VBYONE1_SEC_MAX;//8M
    Ouint32 FPGA_FLASH_VBYONE1_MAX_ADDR;

    //FPGA2 FLASH
    Ouint32 FPGA_FLASH_VBYONE2_SEC_MAX;
    Ouint32 FPGA_FLASH_VBYONE2_MAX_ADDR;


    Ouint32 SOURCE_CHIP_SEC_MAX;
    Ouint32 SOURCE_CHIP_FLASH_MAX_ADDR;



private:
    Global();
    static Global* _p_global;

};

#endif /* GLOBAL_GLOBAL_H_ */
